package com.school.entity;

/**
 * 父类：抽取学生和教师的共性属性（ID、姓名、性别）与抽象方法（打印工作单）
 * 权限说明：属性用protected修饰，子类可直接访问，外部包需通过Getter获取
 */
public abstract class Person {
    // 共性属性：protected修饰（子类可见，外部包不可见）
    protected String id;
    protected String name;
    protected String gender;

    // 父类构造方法：初始化共性属性
    public Person(String id, String name, String gender) {
        this.id = id;
        this.name = name;
        this.gender = gender;
    }

    // 抽象方法：打印工作单（子类必须实现，学生打印课表、教师打印授课信息）
    public abstract void printWork();

    // Getter方法：外部包（如test包）通过Getter访问protected属性
    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getGender() {
        return gender;
    }
}